package com.bsj.travel.def.common.DTO.web.subscribe;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/***
 * @description SubscribeDTO
 * @author LiJiaXin
 * @version 1.0.0
 * @time 2024/2/27 11:41
 **/
@Data
public class SubscribeDTO {

    /**
     * 订阅id
     */
    private Long id;

    /**
     * 产品id
     */
    @NotNull(message = "所属产品不能为空")
    private Long productId;

    /**
     * 订阅类型：1HTTP
     */
    @NotNull(message = "订阅类型不能为空")
    @Min(value = 1, message = "订阅类型不存在")
    @Max(value = 1, message = "订阅类型不存在")
    private Integer subscribeType;

    /**
     * 推送类型：1设备状态变更 2设备生命周期变更 3设备上报信息
     */
    @NotBlank(message = "推送类型不能为空")
    private String pushType;

    /**
     * HTTP推送地址
     */
    @NotBlank(message = "推送地址不能为空")
    private String url;

    /**
     * 是否加密（1否 2是）
     */
    @NotNull(message = "请选择是否加密")
    @Min(value = 1, message = "请选择是否加密")
    @Max(value = 2, message = "请选择是否加密")
    private Integer isEncrypt;

    /**
     * 加密密钥
     */
    @Length(max = 30,message = "加密密钥长度不能超过30")
    private String secretKey;


}
